2563번 색종이

Day7 7단계 20231025
(해결 날짜 : 20231026)
( 다른 사람의 아이디어로 풀었다. 다음엔 내 아이디어로 풀어보자. )

import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int num = Integer.parseInt(br.readLine());
		int[][] a = new int[num][2];
		int xdup = 0;
		int ydup = 0;
		int dupArea = 0;
		
		for (int i = 0; i < num; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			for (int j = 0; j < 2; j++) {
				a[i][j] = Integer.parseInt(st.nextToken());
			}
		}
		
		for (int i = 0; i < num - 1; i++) {
			for (int j = i + 1; j < num; j++) {
				if (Math.abs(a[j][0] - a[i][0]) < 10 && Math.abs(a[j][1] - a[i][1]) < 10) {
					xdup = Math.min(a[i][0], a[j][0]) + 10 - Math.max(a[i][0], a[j][0]);
					ydup = Math.min(a[i][1], a[j][1]) + 10 - Math.max(a[i][1], a[j][1]);
					dupArea += (xdup) * (ydup);
				}
			}
		}
		System.out.println(100 * num - dupArea);
		br.close();
	}
}

import java.io.*;
import java.util.*;
// code idea from https://propercoding.tistory.com/241
public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		boolean[][] paper = new boolean[101][101];
		int num = Integer.parseInt(br.readLine());
		
		for (int i = 0; i < num; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());
			for (int j = x; j < x + 10; j++) {
				for (int k = y; k < y + 10; k++) {
					paper[j][k] = true;
				}
			}
		}
		int numTrue = 0;
		for(boolean[] b1 : paper) {
			for(boolean b2 : b1) {
				if(b2) {numTrue++;}
			}
		}
		System.out.println(numTrue);
	}
}